Software matematic Radu Tiberiu Trˆımbit as
|
|
- Σταματία Αντωνιάδης
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Software matematic Radu Tiberiu Trîmbiţaş
2 ii
3 Prefaţă Pentru a descărca sursele din această carte şi soluţiile problemelor trimitem cititorul la pagina de web a autorului: tradu. Radu Tiberiu Trîmbiţaş iii
4 iv Prefaţă
5 Cuprins 1. Introducere în MATLAB Lansarea MATLAB şi sistemul de help Modul calculator Matrice Generarea matricelor Indexarea şi notaţia,,: Operaţii în sens matricial şi în sens tablou Analiza datelor Operatori relaţionali şi logici Programarea în MATLAB Fluxul de control Fişiere M Argumente funcţie Număr variabil de argumente Variabile globale Recursivitate Alte tipuri numerice Controlul erorilor Toolbox-urile Symbolic Probleme Grafică în MATLAB Grafice bidimensionale Grafice de bază v
6 vi Cuprins Axe şi adnotarea Mai multe grafice pe aceeaşi figură Grafice tridimensionale Salvarea şi imprimarea graficelor Facilităţi grafice noi în MATLAB Probleme Algebră liniară în MATLAB Rezolvarea sistemelor de ecuaţii liniare în MATLAB Sisteme pătratice Sisteme supradeterminate Sisteme subdeterminate Factorizarea LU şi Cholesky Factorizarea QR Polinoame şi potrivirea datelor în MATLAB Valori şi vectori proprii în MATLAB Probleme Interpolare în MATLAB Interpolare unidimensională Interpolarea funcţiilor de mai multe variabile în MATLAB Probleme Funcţii de funcţii Integrare numerică în MATLAB Calculul integralelor duble în MATLAB Ecuaţii neliniare şi minimizare Probleme Ecuaţii diferenţiale în MATLAB Rezolvitori Exemple non-stiff Opţiuni Ecuaţii stiff Tratarea evenimentelor Ecuaţii implicite Probleme Bibliografie 165 Indice 167
7 Lista surselor MATLAB 1.1 Funcţia stat Funcţia sqrtn Funcţia fd deriv Funcţia companb Funcţia momente Funcţia koch Fulgul lui Koch Reprezentarea grafică a unei funcţii implicite Exemplu de aproximare în sensul celor mai mici pătrate Sistemul lui Rössler Problemă stiff cu informaţii despre jacobian Problema celor două corpuri Funcţiile fox2 şi events pentru problema de urmărire vii
8 viii LISTA SURSELOR MATLAB
9 CAPITOLUL 1 Introducere în MATLAB Cuprins 1.1. Lansarea MATLAB şi sistemul de help Modul calculator Matrice Generarea matricelor Indexarea şi notaţia,,: Operaţii în sens matricial şi în sens tablou Analiza datelor Operatori relaţionali şi logici Programarea în MATLAB Fluxul de control Fişiere M Argumente funcţie Număr variabil de argumente Variabile globale Recursivitate Alte tipuri numerice Controlul erorilor Toolbox-urile Symbolic Probleme
10 2 Introducere în MATLAB MATLAB 1 este un sistem interactiv destinat calculelor numerice. Prima versiune MATLAB a fost scrisă în anii 7 de Cleve Moler. MATLAB uşurează sarcina utilizatorului de a rezolva problemele numerice. Aceasta permite concentrarea asupra părţii creatoare a rezolvării problemei şi încurajează experimentele. MATLAB utilizează algoritmi cunoscuţi şi testaţi, în care utilizatorul poate avea încredere. Operaţiile puternice se pot realiza uşor cu un număr mic de comenzi (de multe ori una sau două). Vă puteţi programa propriul set de funcţii pentru aplicaţia dumneavoastră. De asemenea, sunt disponibile facilităţi grafice excelente, iar imaginile pot fi inserate în documente LATEX sau Word. Pentru o introducere mai detaliată în MATLAB a se vedea [5, 15, 1] Lansarea MATLAB şi sistemul de help Sub sistemul de operare Windows, MATLAB se lansează dând un click dublu pe icon-ul corespunzător sau selectând programul din meniul de start. Prompterul din fereastra de comandă este indicat prin >>. MATLAB poate fi utilizat în mai multe moduri: ca un calculator avansat (când comenzile sunt introduse în linia de comandă de la tastatură), ca un limbaj de programare de nivel înalt şi sub formă de rutine apelate dintr-un limbaj de programare, de exemplu C. Informaţiile de help pot fi obţinute în mai multe moduri: din linia de comandă utilizând comanda help subiect ; dintr-o fereastră de help separată, deschisă prin meniul Help; utilizând MATLAB helpdesk memorat pe disc sau CD. Comanda help help da o scurtă descriere a sistemului de help, iar help fară nici un parametru dă o listă a subiectelor de help. Primele linii arată astfel HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. matlab\lang - Programming language constructs. matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions. matlab\specfun - Specialized math functions. matlab\matfun - Matrix functions - numerical linear algebra. Pentru a obţine informaţii de help despre funcţiile elementare se tastează 1 MATLAB R este o marcă înregistrată a Mathworks Inc., Natick MA
11 1.2. Modul calculator 3 >> help elfun Pentru a obţine doar un ecran la un moment dat se poate introduce întâi comanda more on, adică >> more on >> help elfun Pentru a trece la următoarea pagină se poate apăsa orice tastă. O altă facilitate utilă este utilizarea unei comenzi de forma lookfor cuvant-cheie, care caută în fişierele help un cuvânt cheie. Propunem cititorului să testeze lookfor factorization, care dă informaţii despre rutinele de factorizare a matricelor, deosebit de utile în algebra liniară. Pentru începători şi cei care predau MATLAB demonstraţiile sunt foarte utile. Un set cuprinzător se poate lansa prin comanda >> demo Atenţie, ea şterge toate variabilele! Înafară de facilitatea de help on-line, există un sistem bazat pe hipertext, care dă detalii asupra asupra celor mai multe comenzi şi exemple. El este disponibil prin comanda doc Modul calculator Operaţiile aritmetice de bază sunt + - * / şi ridicarea la putere ˆ. Ordinea implicită a operaţiilor se poate schimba cu ajutorul parantezelor. MATLAB recunoşte mai multe tipuri de numere: întregi, cum are fi 1362 sau ; reale, de exemplu 1.234, 1.76; complexe, cum ar fi i, unde i = 1; Inf, desemnează infinitul; NaN, Not a Number, care se obţine ca rezultat al unei operaţii ilegale sau al unei nedeterminări din analiza matematică (/, /,, etc.). Notaţia cu exponent este de asemenea utilizată: e+3 = = e 1 = =.13412
12 4 Introducere în MATLAB Toate calculele se realizează în virgulă flotantă. Formatul în care MATLAB afişează numerele este controlat de comanda format. Tastaţi help format pentru o listă completă. Tabela următoare dă câteva exemple. Comanda format short format short e format long e format short g format bank Exemple de ieşiri (4 zecimale) e e (4 zecimale) 31.42(2 zecimale) Comanda format compact elimină liniile goale de la ieşire şi permite să se afişeze mai multă informaţie. Numele de variabile în MATLAB sunt formate din secvenţe de litere şi cifre, prima fiind o literă. Exemple: x, y, z525, TotalGeneral. Se face distincţie între literele mari şi cele mici. Există şi nume speciale, a căror folosire trebuie evitată, cum ar fi: - eps = 2.224e-16 = 2 54 este epsilon-ul maşinii care reprezintă cel mai mare număr cu proprietatea că 1+eps nu poate fi distins de 1; - pi = π. Dacă se fac calcule cu numere complexe folosirea variabilelor i şi j este contraindicată, deoarece ele desemnează unitatea imaginară. Dăm câteva exemple: >>x = 3-2ˆ4 x = -13 >>y = x*5 y = -65 >>eps 2.224e-16 Variabila specială ans păstrează valoarea ultimei expresii evaluate. Ea poate fi utilizată în expresii, la fel ca orice altă variabilă. >>3-2ˆ4-13 >>ans*5-65
13 1.2. Modul calculator 5 cos, sin, tan, csc, sec, cot acos, asin, atan, atan2, asec, acsc, acot cosh, sinh, tanh, sech, csch, coth acosh, asinh, atanh, asech, acsch, acoth log, log2, log1, exp, pow2, nextpow2 ceil, fix, floor, round abs, angle, conj, imag, real mod, rem, sign airy, bessel*, beta*, erf*, expint, gamma*, legendre factor, gcd, isprime, lcm, primes, nchoosek, perms, rat, rats cart2sph, cart2pol, pol2cart, sph2cart Funcţii trigonometrice Funcţii trigonometrice inverse Funcţii hiperbolice Funcţii hiperbolice inverse Funcţii exponenţiale Rotunjiri Complexe Rest, semn Funcţii matematice Funcţii din teoria numerelor Transformări de coordonate Tabela 1.1: Funcţii elementare şi funcţii matematice speciale ("fun*" indică existenţa mai multor funcţii al căror nume începe cu fun Dacă dorim să suprimăm afişarea ultimei expresii evaluate, vom pune caracterul,,; la sfârşitul expresiei. Pe o linie de comandă se pot introduce mai multe expresii. Ele pot fi separate prin virgulă, caz în care valoarea expresiei terminată cu virgulă va fi afişată, sau cu,,;, caz în care valoarea expresiei nu va fi afişată. >> x=-13; y = 5*x, z = xˆ2+y, z2 = xˆ2-y; y = -65 z = 14 Dacă dorim să salvăm variabile, o putem face cu comanda >>save nume-fisier lista-variabile unde variabilele din lista-variabile sunt separate prin blanc. Se pot folosi în numele de variabile construcţii de tip wildcard, desemnate prin *. Rezultatul salvării se păstrează în fişierul nume-fisier de tip.mat, în format binar, specific MA- TLAB. Variabilele salvate pot fi încărcate prin >>load nume-fisier
14 6 Introducere în MATLAB Se pot face salvări şi încărcări şi în format ascii, în dublă precizie sau prin adăugare la un fişier existent. Pentru detalii a se vedea help save şi help load. Lista variabilelor utilizate în sesiunea curentă se poate vizualiza cu whos: >>whos Name Size Bytes Class ans 1x1 8 double array i 1x1 8 double array v 1x3 24 double array x 1x1 8 double array y 1x1 8 double array z 1x1 8 double array z2 1x1 8 double array Grand total is 7 elements using 72 bytes Comanda >>diary nume-fisier salvează toate comenzile şi rezultatele afişate pe ecran (cu excepţia celor ale comenzilor grafice) în fişierul nume-fisier. Acest proces de,,jurnalizare se termină prin >>diary off MATLAB dispune de un set bogat de funcţii elementare, care apar organizate pe clase în tabela Matrice Matricele sunt tipuri de date fundamentale în MATLAB. Ele sunt de fapt tablouri multidimensionale în dublă precizie. Cele mai folosite sunt matricele bidimensionale, care sunt tablouri bidimensionale cu m linii şi n coloane. Vectorii linie (m = 1) şi coloană (n = 1) sunt cazuri particulare de matrice bidimensionale Generarea matricelor Există mai multe moduri de a genera matrice. Unul dintre ele este cel explicit, care utilizează parantezele pătrate. Ca separatori între elemente se folosesc blancul sau virgula în interiorul unei linii şi punctul şi virgula sau,,newline pentru a separa liniile: >> A = [ ] A =
15 1.3. Matrice 7 zeros Matricea nulă ones Matrice formată din elemente 1 eye Matricea identică repmat Replicarea şi pavarea tablourilor rand Numere aleatoare distribuite uniform randn Numere aleatoare distribuite normal linspace Vector de elemente echidistante logspace Vector de elemente spaţiate logaritmic Tabela 1.2: Funcţii pentru generarea de matrice >> B = [-1 2 5; 9 5] B = >> C = [, 1; 3, -2; 4, 2] C = Dimensiunea unei matrice se poate obţine cu comanda size: >> v = size(a) v = 2 3 >> [r, c] = size(a) r = 2 c = 3 Prima formă returnează un vector cu două elemente ce conţine numărul de linii şi respectiv de coloane. A doua pune dimensiunile în variabile separate. MATLAB are un set util de funcţii pentru construirea unor matrice speciale, vezi tabela 1.2. Matricele de zerouri, de elemente 1 şi matricele identice se obţin cu funcţiile zeros, ones şi respectiv eye. Toate au aceeaşi sintaxă. De exemplu, zeros(m,n) sau zeros([m,n]) produce o matrice m n de zerouri, în timp ce zeros(n) produce o matrice n n. Exemple: >> zeros(2)
16 8 Introducere în MATLAB >> ones(2,3) >> eye(3,2) 1 1 O situaţie comună se întâlneşte atunci când se doreşte construirea unei matrice identice sau nule având o dimensiune egală cu a unei matrice date A. Aceasta se poate face cu eye(size(a)). O funcţie înrudită cu size este funcţia length: length(a) este cea mai mare dintre dimensiunile lui A. Astfel, pentru un vector n 1 sau 1 n, x, length(x) returnează n. Funcţiile rand şi randn generează matrice de numere (pseudo-)aleatoare, utilizând aceeaşi sintaxă ca şi eye. Funcţia rand produce o matrice de numere aleatoare având distribuţia uniformă pe intervalul [,1]. Funcţia randn generează o matrice de numere aleatoare având distribuţia normală standard. Apelate fără argumente, ambele funcţii produc un singur număr aleator. >> rand.457 >> rand(3) În simulările şi experimentele cu numere aleatoare este important ca secvenţele de numere aleatoare să fie reproductibile. Numerele produse de rand depind de starea generatorului. Starea se poate seta prin comanda rand( state,j). Pentru j= generatorul rand este setat în starea iniţială (starea de la lansarea MATLAB). Pentru întregi j nenuli, generatorul este setat pe a j-a stare. Starea lui randn se setează în acelaşi mod. Perioadele lui rand şi randn, adică numărul de termeni generaţi înainte ca secvenţele să înceapă să se repete este mai mare decât Matricele se pot construi şi în formă de bloc. Din matricea B, definită prin B=[1 2; 3 4], putem crea >> C=[B, zeros(2); ones(2), eye(2)] C =
17 1.3. Matrice Matricele diagonale pe blocuri se pot defini utilizând funcţia blkdiag, care este mai uşor de utilizat decât notaţia cu paranteze pătrate. Exemplu: >> A=blkdiag(2*eye(2),ones(2)) A = Funcţia repmat permite construirea de matrice prin repetarea de subblocuri: repmat(a,m,n) crează o matrice de m pe n blocuri în care fiecare bloc este o copie a lui A. Dacă n lipseşte, valoarea sa implicită este m. Exemplu: >> A=repmat(eye(2),2) A = Sunt disponibile şi comenzi pentru manipularea matricelor; vezi tabela 1.3. reshape diag blkdiag tril triu fliplr flipud rot9 Schimbarea dimensiunii Matrice diagonale şi diagonale ale matricelor Matrice diagonală pe blocuri Extragerea părţii triunghiulare inferior Extragerea părţii triunghiulare inferior Rotire matrice în jurul axei de simetrie verticale Rotire matrice în jurul axei de simetrie orizontale Rotaţia unei matrice cu 9 de grade Tabela 1.3: Funcţii de manipulare a matricelor Funcţia reshape schimbă dimensiunile unei matrice: reshape(a,m,n) produce o matrice m pe n ale cărei elemente sunt luate coloană cu coloană din A. De exemplu: >>A=[1 4 9; ], B=reshape(A,3,2) A = B = 1 25
18 1 Introducere în MATLAB Funcţia diag lucrează cu diagonalele unei matrice şi poate avea ca argument o matrice sau un vector. Pentru un vector x, diag(x) este matricea cu diagonala principală x: >>diag([1,2,3]) Mai general, diag(x,k) pune x pe diagonala cu numărul k, unde k = înseamnă diagonala principală, k > specifică diagonale situate deasupra diagonalei principale, iar k < diagonale dedesubtul diagonalei principale: >> diag([1,2],1) 1 2 >> diag([3 4],-2) 3 4 Pentru o matrice A, diag(a) este vectorul coloană format din elementele de pe diagonala principală a lui A. Pentru a produce o matrice diagonală având aceaşi diagonală ca A se va utiliza diag(diag(a)). Analog cazului vectorial, diag(a,k) produce un vector coloană construit din a k-a diagonală a lui A. Astfel dacă A = atunci >> diag(a) >> diag(a,-1)
19 1.3. Matrice tril(a) obţine partea triunghiulară inferior a lui A (elementele situate pe diagonală principală şi dedesubtul ei şi în rest zero). Analog lucrează triu(a) pentru partea triunghiulară superior. Mai general, tril(a,k) dă elementele situate pe diagonala a k-a a lui A şi dedesubtul ei, în timp ce triu(a,k) dă elementele situate pe a k-a diagonală a lui A şi deasupra ei. Pentru A ca mai sus: >>tril(a) >>triu(a,1) >>triu(a,-1) MATLAB posedă un set de funcţii pentru generarea unor matrice speciale. Aceste matrice au proprietăţi interesante care le fac utile pentru construirea de exemple şi testarea algoritmilor. Ele sunt date în tabela 1.4. Funcţia gallery asigură accesul la o colecţie bogată de matrice de test creată de Nicholas J. Higham [6]. Pentru detalii vezi help gallery Indexarea şi notaţia,,: Pentru a permite accesul şi atribuirea la nivel de submatrice, MATLAB are o notaţie puternică bazată pe caracterul,,:. Ea este utilizată pentru a defini vectori care acţionează ca indici. Pentru scalarii i şi j, i:j desemnează vectorul linie cu elementele i, i+1,... j (pasul este 1). Un pas diferit, s, se specifică prin i:s:j. Exemple: >> 1: >> 4:-1:-2
20 12 Introducere în MATLAB compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson matrice companion colecţie de matrice de test matrice Hadamard matrice Hankel matrice Hilbert inversa matricei Hilbert pătrat magic matricea Pascal (coeficienţi binomiali) matrice simetrică pentru testarea valorilor proprii matrice Toeplitz matrice Vandermonde matricea lui Wilkinson pentru testarea valorilor proprii Tabela 1.4: Matrice speciale >> :.75: Elementele individuale ale unei matrice se accesează prin A(i,j), unde i 1 şi j 1 (indicii zero sau negativi nu sunt admişi în MATLAB). Notaţia A(p:q,r:s) desemnează submatricea constând din intersecţia liniilor de la p la q şi coloanelor de la r la s a lui A. Ca un caz special, caracterul,,: singur, ca specificator de linie şi coloană, desemnează toate elementele din acea linie sau coloană: A(:,j) este a j-a coloană a lui A, iar A(i,:) este a i-a linie. Cuvântul cheie end utilizat în acest context desemnează ultimul indice în dimensiunea specificată; astfel A(end,:) selectează ultima linie a lui A. În fine, o submatrice arbitrară poate fi selectată specificând indicii de linie şi coloană individuali. De exemplu, A([i,j,k],[p,q]) produce submatricea dată de intersecţia liniilor i, j şi k şi coloanelor p şi q. Iată câteva exemple ce utilizează matricea >> A = [ ] a primelor nouă numere prime: >> A(2,1) 7 >> A(2:3,2:3)
21 1.3. Matrice >> A(:,1) >> A(2,:) >> A([1 3],[2 3]) Un caz mai special este A(:)care desemnează un vector coloană ce conţine toate elementele lui A, aşezate coloană după coloană, de la prima la ultima >> B=A(:) B = Când apare în partea stângă a unei atriburi, A(:) completează A, păstrându-i forma. Cu astfel de notaţie, matricea de numere prime3 3, A, se poate defini prin >> A=zeros(3); A(:)=primes(23); A=A A = Funcţia primes returnează un vector de numere prime mai mici sau egale cu argumentul ei. Transpunerea A = A (vezi secţiunea 1.3.3) este necesară pentru a ordona numerele prime după linii nu după coloane. Legată de notaţia,,: este funcţia linspace, care în loc de increment acceptă număr de puncte: linspace(a,b,n) generează n puncte echidistante între a şi b. Dacă n lipseşte, valoarea sa implicită este 1. Exemplu:
22 14 Introducere în MATLAB >> linspace(-1,1,9) Columns 1 through Columns 8 through Notaţia [] înseamnă matricea vidă,. Atribuirea lui [] unei linii sau unei matrice este un mod de a şterge o linie sau o coloană a matricei: >>A(2,:)=[] A = Acelaşi efect se obţine cu A = A([1,3],:). Matricea vidă este de asemenea utilă ca indicator de poziţie într-o listă de argumente, aşa cum se va vedea în Operaţia Sens matricial Sens tablou Adunare + + Scădere - - Înmulţire *.* Împărţire stângă \.\ Împărţire uzuală /./ Ridicare la putere ˆ.ˆ Tabela 1.5: Operaţii pe matrice şi tablouri Operaţii în sens matricial şi în sens tablou Pentru scalarii a şi b, operaţiile +, -, / and ˆ produc rezultate evidente. Pe lângă operatorul uzual de împărţire, cu semnificaţia a b, MATLAB are operatorul de împărţire stângă (backslash\), cu semnificaţia b a. Pentru matrice, toate aceste operaţii pot fi realizate în sens matricial (în conformitate cu regulile algebrei matriciale) sau în sens tablou (element cu element). Tabela 1.5 dă lista lor. Operaţiile de adunare şi scădere sunt identice atât în sens matricial cât şi în sens tablou. Produsul A*B este înmulţirea matricială uzuală. Operatorii de împărţire / şi \ definesc soluţii ale sistemelor liniare: A\B este soluţia X a lui A*X = B, în timp ce A/B este soluţia lui X*B = A. Exemple: >> A=[2,3,5; 7,11,13; 17,19,23] A = 2 3 5
23 1.3. Matrice >> A=[1 2; 3 4], B=ones(2) A = B = >> A+B >> A*B >> A\B Înmulţirea şi împărţirea în sens tablou, sau pe elemente, se specifică precedând operatorul cu un punct. Dacă A şi B sunt matrice de aceeaşi dimensiune, atunci C = A.*B însemnă C(i,j)=A(i,j)*B(i,j) iar C = A.\B înseamnă C(i,j)=B(i,j)/A(i,j). Pentru A şi B ca în exemplul precedent: >> A.*B >> B./A Inversa unei matrice pătratice nesingulare se obţine cu funcţia inv, iar determinantul unei matrice pătratice cu det. Ridicarea la putere ˆ este definită ca putere a unei matrice, dar forma cu punct face ridicarea la putere element cu element. Astfel, dacă A este o matrice pătratică, atunci Aˆ2 este A*A, dar A.ˆ2 se obţine ridicând la pătrat fiecare element al lui A: >> Aˆ2, A.ˆ
24 16 Introducere în MATLAB Operaţia.ˆ permite ca exponentul să fie un tablou când dimensiunile bazei şi exponentului coincid, sau când baza este un scalar: >> x=[1 2 3]; y=[2 3 4]; Z=[1 2; 3 4]; >> x.ˆy >> 2.ˆx >> 2.ˆZ Ridicarea la putere a matricelor este definită pentru toate puterile, nu numai pentru întregi pozitivi. Dacă n< este un întreg, atunci Aˆn este definit prin inv(a)ˆ(-n). Pentru p neîntreg, Aˆp este evaluată utilizând valorile proprii ale lui A; rezultatul poate fi incorect sau imprecis dacă A nu este diagonalizabilă sau când A este prost condiţionată din punct de vedere al valorilor proprii. Transpusa conjugată a matricei A se obţine cu A. Dacă A este reală, atunci aceasta este transpusa obişnuită. Transpusa fără conjugare se obţine cu A.. Alternativele funcţionale ctranspose(a) şi transpose(a) sunt uneori mai convenabile. În cazul particular al vectorilor coloană x şi y, x *y este produsul scalar, care se poate obţine şi cu dot(x,y). Produsul vectorial a doi vectori se poate obţine cu cross. Exemplu: >> x=[-1 1] ; y=[3 4 5] ; >> x *y 2 >> dot(x,y) 2 >> cross(x,y)
25 1.3. Matrice 17 La adunarea dintre un scalar şi o matrice, MATLAB va expanda scalarul într-o matrice cu toate elementele egale cu acel scalar. De exemplu >> [4,3;2,1] >> A=[1-1]-6 A = -5-7 Totuşi, dacă atribuirea are sens fără expandare, atunci va fi interpretată în acest mod. Astfel, dacă comanda precedentă este urmată de A=1, A va deveni scalarul 1, nu ones(1,2). Dacă o matrice este înmulţită sau împărţită cu un scalar, operaţia se realizează element cu element: >> [3 4 5; 4 5 6]/ Funcţiile de matrice în sensul algebrei liniare au numele terminat în m: expm, funm, logm, sqrtm. De exemplu, pentru A = [2 2; 2], >> sqrt(a) >> sqrtm(a) >> ans*ans Analiza datelor Tabela 1.6 dă funcţiile de bază pentru analiza datelor. Cel mai simplu mod de utilizare a lor este să fie aplicate unui vector, ca în exemplele >> x=[ ] x = >> [min(x) max(x)]
26 18 Introducere în MATLAB max min mean median std var sort sum prod cumsum cumprod diff Maximul Minimul Media Mediana Abaterea medie pătratică Dispersia Sortare în ordine crescătoare Suma elementelor Produsul elementelor Suma cumulată Produsul cumulat Diferenţa elementelor Tabela 1.6: Funcţii de bază pentru analiza datelor -8 4 >>sort(x) >>sum(x) -5 Funcţia sort sortează crescător. Pentru un vector real x, se poate face sortarea descrescătoare cu -sort(-x). Pentru vectori complecşi, sort sortează după valorile absolute. Dacă argumentele sunt matrice, aceste funcţii acţionează pe coloane. Astfel, max şi min returnează un vector ce conţine elementul maxim şi respectiv cel minim al fiecărei coloane, sum returnează un vector ce conţine sumele coloanelor, iar sort sortează elementele din fiecare coloană a unei matrice în ordine crescătoare. Funcţiile min şi max pot returna un al doilea argument care specifică în care componente sunt situate elementul minim şi cel maxim. De exemplu, dacă A = atunci >>max(a) 5 2 2
27 1.3. Matrice 19 >>[m,i]=min(a) m = -3-4 i = Aşa cum ne arată acest exemplu, dacă există două sau mai multe elemente minimale într-o coloană, se returnează numai indicele primului. Cel mai mic element dintr-o matrice se poate obţine aplicând min de două ori succesiv: >>min(min(a)) -4 sau utilizând >> min(a(:)) -4 Funcţiile max şi min pot fi făcute să acţioneze pe linie printr-un al treilea argument: >>max (A,[],2) Argumentul 2 din max(a,[],2) specifică maximul după a doua dimensiune, adică după indicele de coloană. Al doilea argument vid [] este necesar, deoarece max sau min cu două argumente returnează maximul sau minimul celor două argumente: >>max(a,) Funcţiile sort şi sum pot fi şi ele făcute să acţioneze pe linii, printr-un al doilea argument. Pentru detalii a se vedea help sort sau doc sort. Funcţia diff calculează diferenţe. Aplicată unui vector x de lungime n produce vectorul [x(2)-x(1) x(3)-x(2)... x(n)-x(n-1)] de lungime n-1. Exemplu >>x=(1:8).ˆ2 x = >>y=diff(x)
28 2 Introducere în MATLAB y = >>z=diff(y) z = Operatori relaţionali şi logici Operatorii relaţionali în MATLAB sunt: == (egal), =(diferit), < (mai mic), > (mai mare), <= (mai mic sau egal) şi >= (mai mare sau egal). De notat că un singur egal = înseamnă atribuire. Comparaţia între scalari produce 1 dacă relaţia este adevărată şi în caz contrar. Comparaţiile sunt definite între matrice de aceeaşi dimensiune şi între o matrice şi un scalar, rezultatul fiind în ambele cazuri o matrice de şi 1. La comparaţia matricematrice se compară perechile corespunzătoare de elemente, pe când la comparaţia matrice-scalar se compară scalarul cu fiecare element. De exemplu: >> A=[1 2; 3 4]; B = 2*ones(2); >> A == B 1 >>A > Pentru a testa dacă dacă matricele A şi B sunt identice, se poate utiliza expresia isequal(a,b): >> isequal(a,b) Mai există şi alte funcţii logice înrudite cu isequal şi al căror nume începe cu is. O selecţie a lor apare în tabela 1.7; pentru o listă completă a se tasta doc is. Funcţia isnan este utilă deoarece testul x == NaN produce întotdeauna (false), chiar dacă x este NaN! (Un NaN este prin definiţie diferit de orice şi nu are o relaţie de ordine cu nimic.) Operatorii logici în MATLAB sunt: & (şi), (sau), (not), xor (sau exclusiv), all (adevărat dacă toate elementele unui vector sunt nenule), any (adevărat dacă cel puţin un element al unui vector este nenul). Dăm câteva exemple: >> x = [-1 1 1]; y = [1 2-3]; >> x> & y>
29 1.3. Matrice 21 ischar isempty isequal isfinite isieee isinf islogical isnan isnumeric isreal issparse Testează dacă argumentul este şir de caractere(string) Testează dacă argumentul este vid Testează dacă tablourile sunt identice Testează dacă elementele unui tablou sunt finite Testeză dacă maşina utilizează aritmetica IEEE Testează dacă elementele unui tablou sunt inf Testează dacă argumentul este un tablou logic Test de NaN Testează dacă argumentul este numeric Testează dacă argumentul este tablou real Testează dacă argumentul este tablou rar Tabela 1.7: O selecţie de funcţii logice is* 1 >> x> y> >> xor(x>,y>) 1 1 >> any(x>) 1 >>all(x>) De notat că xor trebuie apelat ca o funcţie: xor(a,b). Operatorii logici and, or, not şi cei relaţionali pot fi apelaţi şi în formă funcţională: and(a,b),..., eq(a,b),... (vezi help ops). Precedenţa operatorilor este rezumată în tabela 1.8 (vezi help precedence). MATLAB evaluează operatorii de precedenţă egală de la stânga la dreapta. Precedenţa se poate modifica cu ajutorul parantezelor. De notat că versiunile MATLAB anterioare lui MATLAB 6 aveau aceeaşi precedenţă pentru and şi or (spre deosebire de majoritatea limbajelor de programare). MathWorks recomandă folosirea parantezelor pentru a garanta obţinerea rezultatelor identice în toate versiunile MATLAB. Pentru matrice all returnează un vector linie ce conţine rezultatul lui all aplicat fiecărei coloane. De aceea all(all(a=b)) este un alt mod de a testa egalitatea matricelor A şi B. Funcţia any lucrează analog; de exemplu, any(any(a==b)) re-
30 22 Introducere în MATLAB Nivel de precedenţă Operator 1 (cea mai mare) transpusa (. ), putere(.ˆ), transpusa conjugată complexă( ), putere matricială(ˆ) 2 plus unar (+), minus unar (-), negaţie ( ) 3 înmulţire (.*), împărţire dreaptă (./), împărţire stângă (.\), înmulţire matricială (*), împărţire dreaptă matricială (/), împărţire stângă matricială (\) 4 adunare (+), scădere (-) 5 două puncte (:) 6 mai mic (<), mai mic sau egal (<=), mai mare (>), mai mare sau egal (>=), egal (==), diferit (~=) 7 şi logic (&) 8 (cea mai mică) sau logic ( ) Tabela 1.8: Precedenţa operatorilor turnează 1 dacă A şi B au cel puţin un element egal şi în caz contrar. Comanda find returnează indicii corespunzători elementelor nenule ale unui vector. De exemplu, >> x = [-3 1 -inf ]; >> f = find(x) f = Rezultatul lui find poate fi apoi utilizat pentru a selecta doar acele elemente ale vectorului: >> x(f) Inf Cu x ca în exemplul de mai sus, putem utiliza find pentru a obţine elementele finite ale lui x, >> x(find(isfinite(x))) -3 1 şi să înlocuim componentele negative ale lui x cu zero: >> x(find(x<))= x = 1
31 1.3. Matrice 23 Când find se aplică matricei A, vectorul de indici corespunde lui A privită ca un vector coloană obţinut din aşezarea coloanelor una peste alta (adică A(:)), şi acest vector poate fi utilizat pentru a indexa A. În exemplul următor se utilizează find pentru a face zero toate elementele lui A care sunt mai mici decât elementele corespunzătoare ale lui B: >> A = [4 2 16; ], B = [12 3 1; 1-1 7] A = B = >> f = find(a<b) f = >> A(f) = A = În cazul matricelor, putem utiliza find sub forma [i,j] = find(a), care returnează vectorii i şi j ce conţin indicii de linie şi coloană ale elementelor nenule. Rezultatele operatorilor logici şi ale funcţiilor logice din MATLAB sunt tablouri de elemente şi 1, care sunt exemple de tablouri logice. Astfel de tablouri pot fi create şi prin aplicarea funcţiei logical unui tablou numeric. Tablourile logice pot fi utilizate la indexare. Fie exemplul >> clear >> y = [1 2-3 ] y = >> i1 = logical(y) Warning: Values other than or 1 converted to logical 1(Type "warning off MATLAB:conversionToLogical" to suppress this warning.) >> i1 = >> i2 = ( y = ) i2 = >> i3 = [1 1 1 ] i3 = 1 1 1
32 24 Introducere în MATLAB >> whos Name Size Bytes Class i1 1x5 5 logical array i2 1x5 5 logical array i3 1x5 4 double array y 1x5 4 double array Grand total is 2 elements using 9 bytes >> y(i1) >> y(i2) >> isequal(i2,i3) 1 >> y(i3)??? Subscript indices must either be real positive integers or logicals. Acest exemplu ilustrează regula că A(M), unde M este un tablou logic de aceeaşi dimensiune ca şi A, extrage elementele lui A corespunzând elementelor lui M cu partea reală nenulă. Chiar dacă i2 are aceleaşi elemente ca i3 (şi la comparaţie ele ies egale), doar tabloul logic i2 poate fi utilizat la indexare. Un apel la find poate fi uneori evitat dacă argumentul său este un tablou logic. În exemplul precedent, x(find(isfinite(x))) poate fi înlocuit cu x(isfinite(x)). Se recomandă utilizarea lui find pentru claritate Programarea în MATLAB Fluxul de control MATLAB are patru structuri de control: instrucţiunea if, instrucţiunea de ciclare for, instrucţiunea de ciclare while şi instrucţiunea switch. Cea mai simplă formă a instrucţiunii if este if expresie instrucţiuni end unde secvenţa instrucţiuni este executată dacă părţile reale ale elementelor lui expresie sunt toate nenule. Secvenţa de mai jos interschimbă x şi y dacă x este mai mare decât y: if x > y temp = y;
33 1.4. Programarea în MATLAB 25 y = x; x = temp; end Atunci când o instrucţiune if este urmată în aceeaşi linie de alte instrucţiuni, este nevoie de o virgulă pentru a separa if-ul de instrucţiunea următoare: if x >, x = sqrt(x); end Alternativa se implementează cu else, ca în exemplul a = piˆexp(1); c = exp(pi); if a >= c b = sqrt(aˆ2-cˆ2) else b = end În fine, se pot introduce teste suplimentare cu elseif (de notat că nu este nici un spaţiu între else şi if): >> if a >= c b = sqrt(aˆ2-cˆ2) elseif aˆc > cˆa b = cˆa/aˆc else b = aˆc/cˆa end Într-un test if de forma,,if condiţie1 & condiţie2, condiţie2 nu este evaluată dacă condiţie1 este falsă (aşa-numită evaluare prin scurtcircuit). Acest lucru este util când evaluarea lui condiţie2 ar putea da o eroare probabil din cauza unei variabile nedefinite sau a unei depăşiri de indice. Ciclul for este una dintre cele mai utile construcţii MATLAB, deşi codul este mai compact fără ea. Sintaxa ei este for variabilă = expresie instrucţiuni end De obicei, expresie este un vector de forma i:s:j. Instrucţiunile sunt executate pentru variabilă egală cu fiecare element al lui expresie în parte. De exemplu, suma primilor 25 de termeni ai seriei armonice 1/i se calculează prin >> s = ; >> for i = 1:25, s = s + 1/i; end, s s = 3.816
34 26 Introducere în MATLAB Un alt mod de a defini expresie este utilizarea notaţiei cu paranteze pătrate: for x = [pi/6 pi/4 pi/3], disp([x, sin(x)]), end Ciclurile for pot fi imbricate, indentarea ajutând în acest caz la creşterea lizibilităţii. Editorul-debuger-ul MATLAB poate realiza indentarea automată. Codul următor construieşte o matrice simetrică 5 pe 5, A, cu elementul (i,j) egal cu i/j pentru j i: n = 5; A = eye(n); for j=2:n for i = 1:j-1 A(i,j)=i/j; A(j,i)=i/j; end end Expresia din ciclul for poate fi o matrice, în care caz lui variabilă i se atribuie succesiv coloanele lui expresie, de la prima la ultima. De exemplu, pentru a atribui lui x fiecare vector al bazei canonice, putem scrie for x=eye(n),..., end. Ciclul while are forma while expresie instrucţiuni end Secvenţa instrucţiuni se execută atât timp cât expresie este adevărată. Exemplul următor aproximează cel mai mic număr nenul în virgulă flotantă: x = 1; while x>, xmin = x; x = x/2; end, xmin xmin = 4.947e-324 Execuţia unui ciclu while sau for poate fi terminată cu o instrucţiune break, care dă controlul primei instrucţiuni de după end-ul corespunzător. Construcţia while 1,..., end, reprezintă un ciclu infinit, care este util atunci când nu este convenabil să se pună testul la începutul ciclului. (De notat că, spre deosebire de alte limbaje, MA- TLAB nu are un ciclu,,repeat-until.) Putem rescrie exemplul precedent mai concis prin x = 1; while 1 xmin = x; x = x/2;
35 1.4. Programarea în MATLAB 27 if x ==, break, end end xmin Într-un ciclu imbricat un break iese în ciclul de pe nivelul anterior. Instrucţiunea continue cauzează trecerea controlului la execuţia unui ciclu for sau while următoarei iteraţii, sărind instrucţiunile rămase din ciclu. Un exemplu trivial este: for i=1:1 if i < 5, continue, end disp(i) end care afişează întregii de la 5 la 1. Structura de control cu care încheiem este instrucţiunea switch. Ea constă din,,switch expresie urmată de o listă de instrucţiuni,,case expresie instrucţiuni, terminată opţional cu,,otherwise instrucţiuni şi urmată de end. Exemplul următor evaluează p-norma unui vector x pentru trei valori ale lui p: switch(p) case 1 y = sum(abs(x)); case 2 y = sqrt(x *x); case inf y = max(abs(x)); otherwise error( p poate fi 1, 2 sau inf. ) end Funcţia error generează un mesaj de eroare şi opreşte execuţia curentă. Expresia ce urmeză după case poate fi o listă de valori delimitate de acolade. Expresia din switch poate coincide cu orice valoare din listă: x = input( Enter a real number: ) switch x case {inf, -inf} disp( Plus or minus infinity ) case disp( Zero ) otherwise disp( Nonzero and finite ) end
36 28 Introducere în MATLAB Construcţia switch din MATLAB se comportă diferit de cea din C sau C++ : odată ce MATLAB a selectat un grup de expresii case şi instrucţiunile sale au fost executate, se dă controlul primei instrucţiuni de după switch, fără a fi nevoie de instrucţiuni break Fişiere M Fişierele M din MATLAB sunt echivalentele programelor, funcţiilor, subrutinelor şi procedurilor din alte limbaje de programare. Ele oferă următoarele avantaje: experimentarea algoritmului prin editare, în loc de a retipări o listă lungă de comenzi; înregistrarea permanentă a unui experiment; construirea de utilitare, care pot fi utilizate repetat; schimbul de fişiere M. Multe fişiere M scrise de entuziaşti pot fi obţinute de pe Internet, pornind de la pagina de web Există şi grupul de ştiri comp.soft-sys.matlab, dedicat MATLAB. (Grupurile de ştiri pot fi citite în mai multe moduri, inclusiv printr-un web browser.) Se pot obţine detalii tastând info la prompterul MATLAB. Un fişier M este un fişier text cu extensia (tipul).m ce conţine comenzi MA- TLAB. Ele sunt de două tipuri: Fişiere M de tip script (sau fişiere de comenzi) nu au nici un argument de intrare sau ieşire şi operează asupra variabilelor din spaţiul de lucru. Fişiere M de tip funcţie conţin o linie de definiţie function şi pot accepta argumente de intrare şi returna argumente de ieşire, iar variabilele lor interne sunt locale funcţiei (înafară de cazul când sunt declarate global). Un fişier script permite memorarea unei secvenţe de comenzi care sunt utilizate repetat sau vor fi necesare ulterior. Script-ul de mai jos utilizează numerele aleatoare pentru a simula un joc. Să considerăm 13 cărţi de pică care sunt bine amestecate. Probabilitatea de a alege o carte particulară din pachet este 1/13. Acţiunea de extragere a unei cărţi se implementează prin generarea unui număr aleator. Jocul continuă prin punerea cărţii înapoi în pachet şi reamestecare până când utilizatorul apasă o tastă diferită de r sau s-a atins numărul de repetări (2). %JOCCARTI %Simularea unui joc de carti
37 1.4. Programarea în MATLAB 29 rand( state,sum(1*clock)); for k=1:2 n=ceil(13*rand); fprintf( Cartea extrasa: %3.f\n,n) disp( ) disp( Apasati r si Return pentru a continua ) r=input( sau orice litera pentru a termina:, s ); if r = r, break, end end Linia rand( state,sum(1*clock)); resetează de fiecare dată generatorul la o stare diferită. Primele două linii ale acestui fişier script încep cu simbolul % şi deci sunt linii de comentariu. Ori de câte ori MATLAB întâlneşte un % va ignora restul liniei. Aceasta ne permite să inserăm texte explicative care vor face fişierele M mai uşor de înţeles. Începând cu versiunea 7 se admit blocuri de comentarii, adică comentarii care să se întindă pe mai multe linii. Ele sunt delimitate prin operatorii %{ şi %}. Ei trebuie să fie singuri pe linie, ca în exemplul: %{ Comentariu bloc pe doua linii %} Dacă script-ul de mai sus este memorat în fişierul joccarti.m, tastând joccarti se obţine: >> joccarti Cartea extrasa: 7 Apasati r si Return pentru a continua sau orice litera pentru a termina: r Cartea extrasa: 3 Apasati r si Return pentru a continua sau orice litera pentru a termina: a >> Fişierele M de tip funcţie permit extinderea limbajului MATLAB prin scrierea de funcţii proprii care acceptă şi returnează argumente. Ele se pot utiliza în acelaşi mod ca funcţiile MATLAB existente, cum ar fi sin, eye, size, etc. Sursa MATLAB 1.1 dă o funcţie simplă care calculează media şi abaterea medie pătratică a unei selecţii (vector). Acest exemplu ilustrează unele facilităţi ale
38 3 Introducere în MATLAB Sursa MATLAB 1.1 Funcţia stat function [med,abmp] = stat(x) %STAT Media si abaterea medie patratica a unei selectii % [MED,ABMP] = STAT(X) calculeaza media si abaterea % medie patratica a selectiei X n = length(x); med = sum(x)/n; abmp = sqrt(sum((x-med).ˆ2)/n); funcţiilor. Prima linie începe cu cuvântul cheie function urmat de argumentele de ieşire, [med,abmp] şi de simbolul =. În dreapta = urmează numele funcţiei, stat, urmat de argumentele de intrare, în cazul nostru x, între paranteze. (În general, putem avea orice număr de argumente de intrare şi de ieşire.) Numele de funcţie trebuie să fie la fel ca al fişierului.m în care funcţia este memorată în cazul nostru stat.m. A doua linie a unui fişier funcţie se numeşte linie H1 sau help 1. Se recomandă ca ea să aibă următoarea formă: să înceapă cu un %, urmat fără nici un spaţiu de numele funcţiei cu litere mari, urmat de unul sau mai multe spaţii şi apoi o scurtă descriere. Descrierea va începe cu o literă mare, se va termina cu un punct, iar dacă este în engleză se vor omite cuvintele the şi a. Când se tastează help nume functie, toate liniile, de la prima linie de comentariu pâna la prima linie care nu este de comentariu (de obicei o linie goală, pentru lizibilitatea codului sursă) sunt afişate pe ecran. Deci, aceste linii descriu funcţia şi argumentele sale. Se convine ca numele de funcţie şi de argumente să se scrie cu litere mari. Pentru exemplul stat.m avem >>help stat STAT media si abaterea medie patratica a unei selectii [MED,ABMP] = STAT(X) calculeaza media si abaterea medie patratica a selectiei X Se recomandă documentarea tuturor funcţiilor utilizator în acest mod, oricât de scurte ar fi. Este util ca în liniile de comentariu din text sa apară data scrierii funcţiei şi datele când s-au făcut modificări. Comanda help lucrează similar şi pe fişiere script. Funcţia stat se apelează la fel ca orice funcţie MATLAB: >> [m,a]=stat(1:1) m = 5.5 a = >> x=rand(1,1); [m,a]=stat(x)
39 1.4. Programarea în MATLAB 31 m = a = O funcţie mai complicată este sqrtn, ilustrată în sursa 1.2. Dându-se a >, ea calculează a cu metoda lui Newton, x k+1 = 1 ) (x k + axk, x 1 = a, 2 afişând şi iteraţiile. Dăm exemple de utilizare: >> [x,it]=sqrtn(2) k x_k er. relativa 1: 1.5e+ 3.33e-1 2: e+ 5.88e-2 3: e+ 1.73e-3 4: e+ 1.5e-6 5: e+ 1.13e-12 6: e+.e+ x = it = 6 >> x=sqrtn(2,1e-4) k x_k er. relativa 1: 1.5e+ 3.33e-1 2: e+ 5.88e-2 3: e+ 1.73e-3 4: e+ 1.5e-6 x = Acest fişier M utilizează comanda return, care dă controlul apelantului. Spre deosebire de alte limbaje de programare, nu este necesar să se pună return la sfârşitul unei funcţii sau al unui script. Funcţia nargin returnează numărul de argumente de intrare cu care funcţia a fost apelată şi permite atribuirea de valori implicite argumentelor nespecificate. Dacă apelul lui sqrtn nu a furnizat o valoare pentru tol, atunci tol primeşte valoarea eps. Numărul de argumente la ieşire este returnat de funcţia nargout. Un fişier M de tip funcţie poate conţine alte funcţii, numite subfuncţii, care pot să apară în orice ordine după funcţia principală (sau primară). Subfuncţiile sunt vizibile numai din funcţia principală sau din alte subfuncţii. Ele realizează calcule care
40 32 Introducere în MATLAB Sursa MATLAB 1.2 Funcţia sqrtn function [x,iter] = sqrtn(a,tol) %SQRTN Radical cu metoda lui Newton. % X = SQRTN(A,TOL) calculeaza radacina patrata a lui % A prin metoda lui Newton(sau a lui Heron). % presupunem ca A >=. % TOL este toleranta (implicit EPS). % [X,ITER] = SQRTN(A,TOL) returneaza numarul de % iteratii ITER necesare. if nargin < 2, tol = eps; end x = a; iter = ; xdiff = inf; fprintf( k x_k er. relativa\n ) for k=1:5 iter = iter + 1; xold = x; x = (x + a/x)/2; xdiff = abs(x-xold)/abs(x); fprintf( %2.f: %2.16e %9.2e\, iter, x, xdiff) if xdiff <= tol, return, end end error( Nu s-a atins precizia dupa 5 de iteratii. ) trebuie separate de funcţia principală, dar nu sunt necesare în alte fişiere M, sau supraîncarcă funcţii cu acelaşi nume (subfuncţiile au prioritate mai mare). Help-ul pentru o subfuncţie se poate specifica punând numele funcţiei urmat de / şi numele subfuncţiei. Pentru a crea şi edita fişiere M avem două posibilităţi. Putem utiliza orice editor pentru fişiere ASCII sau putem utiliza MATLAB Editor/Debugger. Sub Windows el se apelează prin comanda edit sau din opţiunile de meniu File-New sau File-Open. Sub Unix se apelează doar prin comanda edit. Editorul/debugger-ul MATLAB are diverse faciltăţi care ajută utilizatorul, cum ar fi indentarea automată a ciclurilor şi structurilor de control, evidenţierea sintaxei prin culori, verificarea perechilor de paranteze şi apostrofuri. Cele mai multe funcţii MATLAB sunt fişiere M păstrate pe disc, dar există şi funcţii predefinite conţinute în interpretorul MATLAB. Calea MATLAB (MATLAB
41 1.4. Programarea în MATLAB 33 path) este o listă de directori care specifică unde caută MATLAB fişierele M. Un fişier M este disponibil numai dacă este pe calea MATLAB. Drumul poate fi setat şi modificat prin comenzile path şi addpath, sau prin utilitarul (fereastra) path Browser, care se apelează din opţiunea de meniu File-Set Path sau tastând pathtool. Un script (dar nu şi o funcţie) care nu este pe calea de căutare se poate executa cu run urmat de calea completă până la fişierul M. Un fişier M se poate afişa pe ecran cu comanda type. Un aspect important al MATLAB este dualitatea comenzi-funcţii. Înafară de forma clasică, nume, urmat de argumente între paranteze, funcţiile pot fi apelate şi sub forma nume, urmat de argumente separate prin spaţii. MATLAB presupune în al doilea caz că argumentele sunt şiruri de caractere. De exemplu apelurile format long şi format( long ) sunt echivalente. MATLAB 7 permite definirea de funcţii imbricate, adică funcţii conţinute în corpul altor funcţii. În exemplul care urmează, funcţia F2 este imbricată în funcţia F1: function x = F1(p1,p2)... F2(p2) function y = F2(p3)... end... end Ca orice altă funcţie, o funcţie imbricată are propriul său spaţiu de lucru în care se memorează variabilele pe care le utilizează. Ea are de asemenea acces la spaţiul de lucru al tuturor funcţiilor în care este imbricată. Astfel, de exemplu, o variabilă care are o valoare atribuită ei de funcţia exterioară poate fi citită şi modificată de o funcţie imbricată la orice nivel în funcţia exterioară. Variabilele create într-o funcţie imbricată pot fi citite sau modificate în orice funcţie care conţine funcţia imbricată Argumente funcţie În multe probleme, cum ar fi integrarea numerică, rezolvarea unor ecuaţii operatoriale, minimizarea unei funcţii, este nevoie ca o funcţie să fie transmisă ca argument unei alte funcţii. Aceasta se poate realiza în mai multe feluri, depinzând de modul în care funcţia apelată a fost scrisă. Vom ilustra aceasta cu funcţia ezplot, care reprezintă grafic funcţia f(x) peste domeniul implicit [ 2π, 2π]. Un prim mod este transmiterea funcţiei printr-o construcţie numită function handle. Acesta este un tip de date MATLAB care conţine toate informaţiile necesare pentru a evalua o funcţie. Un function handle poate fi creat punând în faţa numelui de funcţie.
42 34 Introducere în MATLAB Astfel, dacă fun este un fişier M de tip funcţie de forma cerută de ezplot, atunci putem tasta ezplot(@fun) fun poate fi numele unei funcţii predefinite: ezplot(@sin) Numele unei funcţii poate fi transmis ca un şir de caractere: ezplot( exp ) Function handle a fost introdus începând cu MATLAB 6 şi este de preferat utilizării şirurilor, fiind mai eficient şi mai versatil. Totuşi, ocazional se pot întâlni funcţii care să accepte argumente de tip funcţie sub formă de şir, dar nu sub formă de function handle. Conversia dintr-o formă în alta se poate face cu func2str şi str2func (vezi help function handle). Mai există două moduri de a transmite o funcţie lui ezplot: ca expresie între apostrofuri, ezplot( xˆ2-1 ), ezplot( 1/(1+xˆ2) ) sau ca obiect inline ezplot(inline( exp(x)-1 )) Un obiect inline este o funcţie definită printr-un şir şi care poate fi atribuită unei variabile şi apoi evaluată: >> f=inline( exp(x)-1 ), f(2) f = Inline function: f(x) = exp(x) MATLAB determină şi ordonează argumentele unei funcţii inline. Dacă acest lucru nu este satisfăcător, argumentele se pot defini şi ordona explicit, transmiţând lui inline parametrii suplimentari: >> f = inline( log(a*x)/(1+yˆ2) ) f = Inline function: f(a,x,y) = log(a*x)/(1+yˆ2) >> f = inline( log(a*x)/(1+yˆ2), x, y, a ) f = Inline function: f(x,y,a) = log(a*x)/(1+yˆ2) Începând cu versiunea 7, MATLAB permite funcţii anonime. Ele pot fi definite în linii de comandă, fişiere M de tip funcţie sau script şi nu necesită un fişier M. Sintaxa pentru crearea unei funcţii anonime este f
Metode iterative pentru probleme neliniare - contractii
Metode iterative pentru probleme neliniare - contractii Problemele neliniare sunt in general rezolvate prin metode iterative si analiza convergentei acestor metode este o problema importanta. 1 Contractii
Metode de interpolare bazate pe diferenţe divizate
Metode de interpolare bazate pe diferenţe divizate Radu Trîmbiţaş 4 octombrie 2005 1 Forma Newton a polinomului de interpolare Lagrange Algoritmul nostru se bazează pe forma Newton a polinomului de interpolare
(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.
Definiţie Spunem că: i) funcţia f are derivată parţială în punctul a în raport cu variabila i dacă funcţia de o variabilă ( ) are derivată în punctul a în sens obişnuit (ca funcţie reală de o variabilă
Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.
Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie p, q N. Fie funcţia f : D R p R q. Avem următoarele
Seminar 5 Analiza stabilității sistemelor liniare
Seminar 5 Analiza stabilității sistemelor liniare Noțiuni teoretice Criteriul Hurwitz de analiză a stabilității sistemelor liniare În cazul sistemelor liniare, stabilitatea este o condiție de localizare
Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"
Curs 14 Funcţii implicite Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie F : D R 2 R o funcţie de două variabile şi fie ecuaţia F (x, y) = 0. (1) Problemă În ce condiţii ecuaţia
5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.
5 Eerciţii reolvate 5 UNCŢII IMPLICITE EXTREME CONDIŢIONATE Eerciţiul 5 Să se determine şi dacă () este o funcţie definită implicit de ecuaţia ( + ) ( + ) + Soluţie ie ( ) ( + ) ( + ) + ( )R Evident este
Sisteme diferenţiale liniare de ordinul 1
1 Metoda eliminării 2 Cazul valorilor proprii reale Cazul valorilor proprii nereale 3 Catedra de Matematică 2011 Forma generală a unui sistem liniar Considerăm sistemul y 1 (x) = a 11y 1 (x) + a 12 y 2
Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor
Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor. Fiind date doua multimi si spunem ca am definit o functie (aplicatie) pe cu valori in daca fiecarui element
Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1
Functii definitie proprietati grafic functii elementare A. Definitii proprietatile functiilor. Fiind date doua multimi X si Y spunem ca am definit o functie (aplicatie) pe X cu valori in Y daca fiecarui
R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.
5p Determinați primul termen al progresiei geometrice ( b n ) n, știind că b 5 = 48 și b 8 = 84 5p Se consideră funcția f : intersecție a graficului funcției f cu aa O R R, f ( ) = 7+ 6 Determinați distanța
Esalonul Redus pe Linii (ERL). Subspatii.
Seminarul 1 Esalonul Redus pe Linii (ERL). Subspatii. 1.1 Breviar teoretic 1.1.1 Esalonul Redus pe Linii (ERL) Definitia 1. O matrice A L R mxn este in forma de Esalon Redus pe Linii (ERL), daca indeplineste
Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare
1 Planul în spaţiu Ecuaţia generală Plane paralele Unghi diedru 2 Ecuaţia generală Plane paralele Unghi diedru Fie reperul R(O, i, j, k ) în spaţiu. Numim normala a unui plan, un vector perpendicular pe
Matrice. Determinanti. Sisteme liniare
Matrice 1 Matrice Adunarea matricelor Înmulţirea cu scalar. Produsul 2 Proprietăţi ale determinanţilor Rangul unei matrice 3 neomogene omogene Metoda lui Gauss (Metoda eliminării) Notiunea de matrice Matrice
III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.
III. Serii absolut convergente. Serii semiconvergente. Definiţie. O serie a n se numeşte: i) absolut convergentă dacă seria modulelor a n este convergentă; ii) semiconvergentă dacă este convergentă iar
Integrala nedefinită (primitive)
nedefinita nedefinită (primitive) nedefinita 2 nedefinita februarie 20 nedefinita.tabelul primitivelor Definiţia Fie f : J R, J R un interval. Funcţia F : J R se numeşte primitivă sau antiderivată a funcţiei
Curs 4 Serii de numere reale
Curs 4 Serii de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Criteriul rădăcinii sau Criteriul lui Cauchy Teoremă (Criteriul rădăcinii) Fie x n o serie cu termeni
Analiză numerică O introducerere bazată pe MATLAB
Analiză numerică O introducerere bazată pe MATLAB Radu Tiberiu Trîmbiţaş Prefaţă Lloyd N. Trefethen a propus următoarea definiţie a Analizei numerice: Analiza numerică este studiul algoritmilor pentru
1 Πίνακες και διανύσματα στο MATLAB
1 Πίνακες και διανύσματα στο MATLAB Η λέξη MATLAB προέρχεται από τα πρώτα γράμματα των λέξεων MATrix LABoratory (εργαστήριο πινάκων). Το όνομά του λογισμικού φανερώνει την έμφαση που έδωσαν οι συγγραφείς
INTRODUCERE ÎN PROGRAMAREA MATLAB
LUCRAREA Nr. 2 INTRODUCERE ÎN PROGRAMAREA MATLAB. Obiective Lucrarea are ca scop însuşirea modului de lucru cu produsul program Matlab pentru calcul numeric, utilizând funcńii matematice uzuale. 2. NoŃiuni
Curs 1 Şiruri de numere reale
Bibliografie G. Chiorescu, Analiză matematică. Teorie şi probleme. Calcul diferenţial, Editura PIM, Iaşi, 2006. R. Luca-Tudorache, Analiză matematică, Editura Tehnopress, Iaşi, 2005. M. Nicolescu, N. Roşculeţ,
V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile
Metode de Optimizare Curs V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile Propoziţie 7. (Fritz-John). Fie X o submulţime deschisă a lui R n, f:x R o funcţie de clasă C şi ϕ = (ϕ,ϕ
Sisteme liniare - metode directe
Sisteme liniare - metode directe Radu T. Trîmbiţaş 27 martie 2016 1 Eliminare gaussiană Să considerăm sistemul liniar cu n ecuaţii şi n necunoscute Ax = b, (1) unde A K n n, b K n 1 sunt date, iar x K
Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă
Noţiunea de spaţiu liniar 1 Noţiunea de spaţiu liniar Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară 2 Mulţime infinită liniar independentă 3 Schimbarea coordonatelor unui vector la o schimbare
Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy
Metode Runge-Kutta Radu T. Trîmbiţaş 8 ianuarie 7 Probleme scalare, pas constant Dorim să aproximăm soluţia problemei Cauchy y (t) = f(t, y), a t b, y(a) = α. pe o grilă uniformă de (N + )-puncte din [a,
Asupra unei inegalităţi date la barajul OBMJ 2006
Asupra unei inegalităţi date la barajul OBMJ 006 Mircea Lascu şi Cezar Lupu La cel de-al cincilea baraj de Juniori din data de 0 mai 006 a fost dată următoarea inegalitate: Fie x, y, z trei numere reale
Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro
Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM Seminar S ANALA ÎN CUENT CONTNUU A SCHEMELO ELECTONCE S. ntroducere Pentru a analiza în curent continuu o schemă electronică,
MARCAREA REZISTOARELOR
1.2. MARCAREA REZISTOARELOR 1.2.1 MARCARE DIRECTĂ PRIN COD ALFANUMERIC. Acest cod este format din una sau mai multe cifre şi o literă. Litera poate fi plasată după grupul de cifre (situaţie în care valoarea
Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu
INTRODUCERE Laborator 1: ÎN ALGORITMI Întocmit de: Claudia Pârloagă Îndrumător: Asist. Drd. Gabriel Danciu I. NOŢIUNI TEORETICE A. Sortarea prin selecţie Date de intrare: un şir A, de date Date de ieşire:
a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea
Serii Laurent Definitie. Se numeste serie Laurent o serie de forma Seria n= (z z 0 ) n regulata (tayloriana) = (z z n= 0 ) + n se numeste partea principala iar seria se numeste partea Sa presupunem ca,
Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor
Facultatea de Matematică Calcul Integral şi Elemente de Analiă Complexă, Semestrul I Lector dr. Lucian MATICIUC Seminariile 9 20 Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reiduurilor.
Teme de implementare in Matlab pentru Laboratorul de Metode Numerice
Teme de implementare in Matlab pentru Laboratorul de Metode Numerice As. Ruxandra Barbulescu Septembrie 2017 Orice nelamurire asupra enunturilor/implementarilor se rezolva in cadrul laboratorului de MN,
EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă
Coordonatori DANA HEUBERGER NICOLAE MUŞUROIA Nicolae Muşuroia Gheorghe Boroica Vasile Pop Dana Heuberger Florin Bojor MATEMATICĂ DE EXCELENŢĂ pentru concursuri, olimpiade şi centre de excelenţă Clasa a
Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice
1 Conice pe ecuaţii reduse 2 Conice pe ecuaţii reduse Definiţie Numim conica locul geometric al punctelor din plan pentru care raportul distantelor la un punct fix F şi la o dreaptă fixă (D) este o constantă
DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE
DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE ABSTRACT. Materialul prezintă o modalitate de a afla distanţa dintre două drepte necoplanare folosind volumul tetraedrului. Lecţia se adresează clasei a VIII-a Data:
III. Reprezentarea informaţiei în sistemele de calcul
Metode Numerice Curs 3 III. Reprezentarea informaţiei în sistemele de calcul III.1. Reprezentarea internă a numerelor întregi III. 1.1. Reprezentarea internă a numerelor întregi fără semn (pozitive) Reprezentarea
5.4. MULTIPLEXOARE A 0 A 1 A 2
5.4. MULTIPLEXOARE Multiplexoarele (MUX) sunt circuite logice combinaţionale cu m intrări şi o singură ieşire, care permit transferul datelor de la una din intrări spre ieşirea unică. Selecţia intrării
2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER
2. Circuite logice 2.4. Decodoare. Multiplexoare Copyright Paul GASNER Definiţii Un decodor pe n bits are n intrări şi 2 n ieşiri; cele n intrări reprezintă un număr binar care determină în mod unic care
SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0
SERII NUMERICE Definiţia 3.1. Fie ( ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0 şirul definit prin: s n0 = 0, s n0 +1 = 0 + 0 +1, s n0 +2 = 0 + 0 +1 + 0 +2,.......................................
Subiecte Clasa a VIII-a
Subiecte lasa a VIII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul
SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0
Facultatea de Hidrotehnică, Geodezie şi Ingineria Mediului Matematici Superioare, Semestrul I, Lector dr. Lucian MATICIUC SEMINAR 4 Funcţii de mai multe variabile continuare). Să se arate că funcţia z,
COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.
SUBIECTUL Editia a VI-a 6 februarie 005 CLASA a V-a Fie A = x N 005 x 007 si B = y N y 003 005 3 3 a) Specificati cel mai mic element al multimii A si cel mai mare element al multimii B. b)stabiliti care
Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)
Ecuatii exponentiale Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. Cea mai simpla ecuatie exponentiala este de forma a x = b, () unde a >, a. Afirmatia.
Criptosisteme cu cheie publică III
Criptosisteme cu cheie publică III Anul II Aprilie 2017 Problema rucsacului ( knapsack problem ) Considerăm un număr natural V > 0 şi o mulţime finită de numere naturale pozitive {v 0, v 1,..., v k 1 }.
1.3 Baza a unui spaţiu vectorial. Dimensiune
.3 Baza a unui spaţiu vectorial. Dimensiune Definiţia.3. Se numeşte bază a spaţiului vectorial V o familie de vectori B care îndeplineşte condiţiile de mai jos: a) B este liniar independentă; b) B este
Subiecte Clasa a VII-a
lasa a VII Lumina Math Intrebari Subiecte lasa a VII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate
2 Transformări liniare între spaţii finit dimensionale
Transformări 1 Noţiunea de transformare liniară Proprietăţi. Operaţii Nucleul şi imagine Rangul şi defectul unei transformări 2 Matricea unei transformări Relaţia dintre rang şi defect Schimbarea matricei
Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca
Conice Lect. dr. Constantin-Cosmin Todea U.T. Cluj-Napoca Definiţie: Se numeşte curbă algebrică plană mulţimea punctelor din plan de ecuaţie implicită de forma (C) : F (x, y) = 0 în care funcţia F este
Laborator 11. Mulţimi Julia. Temă
Laborator 11 Mulţimi Julia. Temă 1. Clasa JuliaGreen. Să considerăm clasa JuliaGreen dată de exemplu la curs pentru metoda locului final şi să schimbăm numărul de iteraţii nriter = 100 în nriter = 101.
Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane
Subspatii ane Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane Oana Constantinescu Oana Constantinescu Lectia VI Subspatii ane Table of Contents 1 Structura de spatiu an E 3 2 Subspatii
Subiecte Clasa a V-a
(40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii
4. CIRCUITE LOGICE ELEMENTRE 4.. CIRCUITE LOGICE CU COMPONENTE DISCRETE 4.. PORŢI LOGICE ELEMENTRE CU COMPONENTE PSIVE Componente electronice pasive sunt componente care nu au capacitatea de a amplifica
Seminar Algebra. det(a λi 3 ) = 0
Rezolvari ale unor probleme propuse "Matematica const în a dovedi ceea ce este evident în cel mai puµin evident mod." George Polya P/Seminar Valori si vectori proprii : Solutie: ( ) a) A = Valorile proprii:
riptografie şi Securitate
riptografie şi Securitate - Prelegerea 12 - Scheme de criptare CCA sigure Adela Georgescu, Ruxandra F. Olimid Facultatea de Matematică şi Informatică Universitatea din Bucureşti Cuprins 1. Schemă de criptare
Universitatea din Bucureşti Facultatea de Matematică şi Informatică. Algebră (1)
Universitatea din ucureşti.7.4 Facultatea de Matematică şi Informatică oncursul de admitere iulie 4 omeniul de licenţă alculatoare şi Tehnologia Informaţiei lgebră (). Fie x,y astfel încât x+y = şi x +
2. Circuite logice 2.2. Diagrame Karnaugh. Copyright Paul GASNER 1
2. Circuite logice 2.2. Diagrame Karnaugh Copyright Paul GASNER Diagrame Karnaugh Tehnică de simplificare a unei expresii în sumă minimă de produse (minimal sum of products MSP): Există un număr minim
Limbaje de Programare Curs 3 Iteraţia. Reprezentare internă. Operatori pe biţi
Limbaje de Programare Curs 3 Iteraţia. Reprezentare internă. Operatori pe biţi Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Iteraţia 2 Reprezentare internă 3 Operaţii
LUCRAREA 1 INTRODUCERE ÎN MATLAB
LUCRAREA 1 INTRODUCERE ÎN MATLAB 1.1. Introducere MATLAB este un pachet de programe dedicat calcului numeric şi reprezentărilor grafice. Elementul de bază cu care operează este matricea, de aici provenind
RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,
REZISTENTA MATERIALELOR 1. Ce este modulul de rezistenţă? Exemplificaţi pentru o secţiune dreptunghiulară, respectiv dublu T. RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii
5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE
5.5. A CIRCUITELOR CU TRANZISTOARE BIPOLARE PROBLEMA 1. În circuitul din figura 5.54 se cunosc valorile: μa a. Valoarea intensității curentului de colector I C. b. Valoarea tensiunii bază-emitor U BE.
Vectori liberi Produs scalar Produs vectorial Produsul mixt. 1 Vectori liberi. 2 Produs scalar. 3 Produs vectorial. 4 Produsul mixt.
liberi 1 liberi 2 3 4 Segment orientat liberi Fie S spaţiul geometric tridimensional cu axiomele lui Euclid. Orice pereche de puncte din S, notată (A, B) se numeşte segment orientat. Dacă A B, atunci direcţia
Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).
Teoremă. (Y = f(x)). Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism Demonstraţie. f este continuă pe X: x 0 X, S Y (f(x 0 ), ε), S X (x 0, ε) aşa ca f(s X (x 0, ε)) = S Y (f(x 0 ), ε) : y
Laborator 6. Integrarea ecuaţiilor diferenţiale
Laborator 6 Integrarea ecuaţiilor diferenţiale Responsabili: 1. Surdu Cristina(anacristinasurdu@gmail.com) 2. Ştirbăţ Bogdan(bogdanstirbat@yahoo.com) Obiective În urma parcurgerii acestui laborator elevul
2. Circuite logice 2.5. Sumatoare şi multiplicatoare. Copyright Paul GASNER
2. Circuite logice 2.5. Sumatoare şi multiplicatoare Copyright Paul GASNER Adunarea în sistemul binar Adunarea se poate efectua în mod identic ca la adunarea obişnuită cu cifre arabe în sistemul zecimal
8 Intervale de încredere
8 Intervale de încredere În cursul anterior am determinat diverse estimări ˆ ale parametrului necunoscut al densităţii unei populaţii, folosind o selecţie 1 a acestei populaţii. În practică, valoarea calculată
Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ
UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB, aprilie 7 Proba scrisă la MATEMATICĂ SUBIECTUL I (3 puncte) ) (5 puncte) Fie matricele A = 3 4 9 8
Curs 2 Şiruri de numere reale
Curs 2 Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Convergenţă şi mărginire Teoremă Orice şir convergent este mărginit. Demonstraţie Fie (x n ) n 0 un
Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.
Modelul 4 Se acordă din oficiu puncte.. Fie numărul complex z = i. Calculaţi (z ) 25. 2. Dacă x şi x 2 sunt rădăcinile ecuaţiei x 2 9x+8 =, atunci să se calculeze x2 +x2 2 x x 2. 3. Rezolvaţi în mulţimea
10. STABILIZATOAE DE TENSIUNE 10.1 STABILIZATOAE DE TENSIUNE CU TANZISTOAE BIPOLAE Stabilizatorul de tensiune cu tranzistor compară în permanenţă valoare tensiunii de ieşire (stabilizate) cu tensiunea
Să se arate că n este număr par. Dan Nedeianu
Primul test de selecție pentru juniori I. Să se determine numerele prime p, q, r cu proprietatea că 1 p + 1 q + 1 r 1. Fie ABCD un patrulater convex cu m( BCD) = 10, m( CBA) = 45, m( CBD) = 15 și m( CAB)
28. SUPRADEFINIREA OPERATORILOR
28. SUPRADEFINIREA OPERATORILOR Pentru un tip clasă se poate defini un set de operatori asociaţi prin supradefinirea operatorilor existenţi, ceea ce permite realizarea de operaţii specifice cu noul tip
2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3
SEMINAR 2 SISTEME DE FRŢE CNCURENTE CUPRINS 2. Sisteme de forţe concurente...1 Cuprins...1 Introducere...1 2.1. Aspecte teoretice...2 2.2. Aplicaţii rezolvate...3 2. Sisteme de forţe concurente În acest
Geometrie computationala 2. Preliminarii geometrice
Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Geometrie computationala 2. Preliminarii geometrice Preliminarii geometrice Spatiu Euclidean: E d Spatiu de d-tupluri,
2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2
.1 Sfera Definitia 1.1 Se numeşte sferă mulţimea tuturor punctelor din spaţiu pentru care distanţa la u punct fi numit centrul sferei este egalăcuunnumăr numit raza sferei. Fie centrul sferei C (a, b,
a. 11 % b. 12 % c. 13 % d. 14 %
1. Un motor termic funcţionează după ciclul termodinamic reprezentat în sistemul de coordonate V-T în figura alăturată. Motorul termic utilizează ca substanţă de lucru un mol de gaz ideal având exponentul
CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii
Clasa a IX-a 1 x 1 a) Demonstrați inegalitatea 1, x (0, 1) x x b) Demonstrați că, dacă a 1, a,, a n (0, 1) astfel încât a 1 +a + +a n = 1, atunci: a +a 3 + +a n a1 +a 3 + +a n a1 +a + +a n 1 + + + < 1
1.4 Schimbarea bazei unui spaţiu vectorial
Algebră liniară, geometrie analitică şi diferenţială. Schimbarea bazei unui spaţiu vectorial După cum s-a văzut deja, într-un spaţiu vectorial V avem mai multe baze, iar un vector x V va avea câte un sistem
Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite
Capitolul 4 Integrale improprii 7-8 În cadrul studiului integrabilităţii iemann a unei funcţii s-au evidenţiat douăcondiţii esenţiale:. funcţia :[ ] este definită peintervalînchis şi mărginit (interval
Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare
Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R În cele ce urmează, vom studia unele proprietăţi ale mulţimilor din R. Astfel, vom caracteriza locul" unui punct în cadrul unei mulţimi (în limba
CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.
Sala: 2103 Decembrie 2014 Conf. univ. dr.: Dragoş-Pătru Covei CURS 11: ALGEBRĂ Specializarea: C.E., I.E., S.P.E. Nota: Acest curs nu a fost supus unui proces riguros de recenzare pentru a fi oficial publicat.
Progresii aritmetice si geometrice. Progresia aritmetica.
Progresii aritmetice si geometrice Progresia aritmetica. Definitia 1. Sirul numeric (a n ) n N se numeste progresie aritmetica, daca exista un numar real d, numit ratia progresia, astfel incat a n+1 a
z a + c 0 + c 1 (z a)
1 Serii Laurent (continuare) Teorema 1.1 Fie D C un domeniu, a D şi f : D \ {a} C o funcţie olomorfă. Punctul a este pol multiplu de ordin p al lui f dacă şi numai dacă dezvoltarea în serie Laurent a funcţiei
Functii Breviar teoretic 8 ianuarie ianuarie 2011
Functii Breviar teoretic 8 ianuarie 011 15 ianuarie 011 I Fie I, interval si f : I 1) a) functia f este (strict) crescatoare pe I daca x, y I, x< y ( f( x) < f( y)), f( x) f( y) b) functia f este (strict)
Principiul Inductiei Matematice.
Principiul Inductiei Matematice. Principiul inductiei matematice constituie un mijloc important de demonstratie in matematica a propozitiilor (afirmatiilor) ce depind de argument natural. Metoda inductiei
V O. = v I v stabilizator
Stabilizatoare de tensiune continuă Un stabilizator de tensiune este un circuit electronic care păstrează (aproape) constantă tensiunea de ieșire la variaţia între anumite limite a tensiunii de intrare,
Aplicaţii ale principiului I al termodinamicii la gazul ideal
Aplicaţii ale principiului I al termodinamicii la gazul ideal Principiul I al termodinamicii exprimă legea conservării şi energiei dintr-o formă în alta şi se exprimă prin relaţia: ΔUQ-L, unde: ΔU-variaţia
Concurs MATE-INFO UBB, 25 martie 2018 Proba scrisă la MATEMATICĂ
UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB, 5 martie 18 Proba scrisă la MATEMATICĂ NOTĂ IMPORTANTĂ: 1 Problemele tip grilă (Partea A pot avea unul
Problema a II - a (10 puncte) Diferite circuite electrice
Olimpiada de Fizică - Etapa pe judeţ 15 ianuarie 211 XI Problema a II - a (1 puncte) Diferite circuite electrice A. Un elev utilizează o sursă de tensiune (1), o cutie cu rezistenţe (2), un întrerupător
Ecuatii trigonometrice
Ecuatii trigonometrice Ecuatiile ce contin necunoscute sub semnul functiilor trigonometrice se numesc ecuatii trigonometrice. Cele mai simple ecuatii trigonometrice sunt ecuatiile de tipul sin x = a, cos
Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera
Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera Cuprins Scheme de algoritmi Divide et impera Exemplificare
Activitatea A5. Introducerea unor module specifice de pregătire a studenţilor în vederea asigurării de şanse egale
Investeşte în oameni! FONDUL SOCIAL EUROPEAN Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane 2007 2013 Axa prioritară nr. 1 Educaţiaşiformareaprofesionalăînsprijinulcreşteriieconomiceşidezvoltăriisocietăţiibazatepecunoaştere
Examen AG. Student:... Grupa:... ianuarie 2011
Problema 1. Pentru ce valori ale lui n,m N (n,m 1) graful K n,m este eulerian? Problema 2. Să se construiască o funcţie care să recunoască un graf P 3 -free. La intrare aceasta va primi un graf G = ({1,...,n},E)
Programarea Calculatoarelor
Programarea Calculatoarelor Modul 1: Rezolvarea algoritmică a problemelor Introducere în programare Algoritm Obiectele unui algoritm Date Constante Variabile Expresii Operaţii specifice unui algoritm şi
CURS XI XII SINTEZĂ. 1 Algebra vectorială a vectorilor liberi
Lect. dr. Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei Algebră, Semestrul I, Lector dr. Lucian MATICIUC http://math.etti.tuiasi.ro/maticiuc/ CURS XI XII SINTEZĂ 1 Algebra vectorială
Arhitectura Calculatoarelor. Fizică - Informatică an II. 2. Circuite logice. Copyright Paul GASNER 1
Arhitectura Calculatoarelor Fizică - Informatică an II gasner@uaic.ro 2. Circuite logice Copyright Paul GASNER 1 Funcţii booleene Porţi logice Circuite combinaţionale codoare şi decodoare Cuprins multiplexoare
Instructiunea while. Forma generala: while (expresie) instructiune;
Instructiunea while while (expresie) instructiune; Modul de executie: 1) Se evalueaza expresie, daca expresie = 0 (fals) se iese din instructiunea while, altfel (expresie 0, deci adevarat) se trece la
Examen AG. Student:... Grupa: ianuarie 2016
16-17 ianuarie 2016 Problema 1. Se consideră graful G = pk n (p, n N, p 2, n 3). Unul din vârfurile lui G se uneşte cu câte un vârf din fiecare graf complet care nu-l conţine, obţinându-se un graf conex
Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera.
pe ecuaţii generale 1 Sfera Ecuaţia generală Probleme de tangenţă 2 pe ecuaţii generale Sfera pe ecuaţii generale Ecuaţia generală Probleme de tangenţă Numim sferă locul geometric al punctelor din spaţiu
9 Testarea ipotezelor statistice
9 Testarea ipotezelor statistice Un test statistic constă în obţinerea unei deducţii bazată pe o selecţie din populaţie prin testarea unei anumite ipoteze (rezultată din experienţa anterioară, din observaţii,
Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15
MĂSURI RELE Cursul 13 15 Măsuri reale Fie (,, µ) un spaţiu cu măsură completă şi f : R o funcţie -măsurabilă. Cum am văzut în Teorema 11.29, dacă f are integrală pe, atunci funcţia de mulţime ν : R, ν()